//#include <iostream>
//#include <string>
//#include <cstring>
//#define maxsize 101
//using namespace std;
//
//bool istrue(string str){
//	char words[maxsize];
//	int len=str.length();
//	strcpy(words,str.c_str());
////	cout<<words<<" "<<len<<endl;
//
//	int pat[5]={0,0,0,0,0};
//	for(int a=0;a<len;a++){
//		if((words[a]!='P')&&(words[a]!='A')&&(words[a]!='T')){
////			cout<<1<<endl;
//			return false;
//		}
//		else{
//			if((words[a]=='A')&&(pat[1]==0)){
//				pat[0]++;
//			}
//			else if((words[a]=='A')&&(pat[1]==1)&&(pat[3]==0)){
//				pat[2]++;
//			}
//			else if((words[a]=='A')&&(pat[1]==1)&&(pat[3]==1)){
//				pat[4]++;
//			}
//			else if((words[a]=='P')&&(pat[1]==0)){
//				pat[1]++;
//			}
//			else if((words[a]=='T')&&(pat[3]==0)&&(pat[2]>0)&&(pat[1]>0)){
//				pat[3]++;
//			}
//			else{
////				cout<<2<<endl;
//				return false;
//			}
//		}
//	}
//	if((pat[1]==1)&&(pat[3]==1)&&(pat[2]>0)){
////		for(int a=0;a<5;a++){
////			cout<<pat[a]<<" ";
////		}
////		cout<<endl;
//		if((pat[0]*pat[2])==pat[4]){
////			cout<<"OK"<<endl;
//			return true;
//		}
//		else{
////			cout<<3<<endl;
//			return false;
//		}
//	}
//	else{
////		cout<<4<<endl;
//		return false;
//	}
//}
//
//int main(){
//	int num;
//	string input[10];
//	cin>>num;
//
//	for(int a=0;a<num;a++){
//		cin>>input[a];
//	}
//
//	for(int a=0;a<num;a++){
//		if(istrue(input[a])){
//			cout<<"YES"<<endl;
//		}
//		else{
//			cout<<"NO"<<endl;
//		}
//	}
////
////	for(int a=0;a<num;a++){
////		cout<<input[a]<<endl;
////	}
//	return 0;
//}


#include "iostream"
#include "string"

using namespace std;

bool judge(int a, int b, int c) {
    if (b == 1 && (a == c)) {
        return true;
    } else if (b > 1) {
        return judge(a, b - 1, c - a);
    } else {
        return false;
    }
}

bool is_true(string s) {
    int P = 0;
    int T = 0;
    int A[3] = {0, 0, 0};

    for (int i = 0; i < s.size(); i++) {
        if ((P < 2) && (T < 2)) {
            if (s[i] == 'P') {
                P++;
            } else if (s[i] == 'T') {
                T++;
            } else if ((s[i] == 'A')) {
                if ((P == 0) && (T == 0)) {
                    A[0]++;
                } else if ((P == 1) && (T == 0)) {
                    A[1]++;
                } else if ((P == 1) && (T == 1)) {
                    A[2]++;
                } else {
                    return false;
                }
            } else {
                return false;
            }
        } else {
            return false;
        };
    }
    if ((P == 1) && (T == 1)) {
        return judge(A[0], A[1], A[2]);
    } else {
        return false;
    }
}

void run() {
    int num;
    cin >> num;
    string str[num];

    for (int i = 0; i < num; i++) {
        cin >> str[i];
    }

    string output = "";
    for (int i = 0; i < num; i++) {
        if (is_true(str[i])) {
            output = output + "YES" + '\n';
        } else {
            output = output + "NO" + '\n';
        }
    }
    output = output.substr(0, output.size() - 1);
    cout << output;

}


int main() {
    run();
    return 0;
}

//PAT
//PAAT
//AAPATAA
//AAPAATAAAA
//xPATx
//PT
//Whatever
//APAAATAA
//APT
//APATTAA